/* 
 * File:   Main2.cpp
 * Author: Guilherme Monteiro
 * 
 */

#include "../headers/Main2.h"

int const ARRAY_SIZE = 100;

//string paths[ARRAY_SIZE] = {
//        "/books/estatisticas/baixa_resolucao/image49.png",
//        "/books/estatisticas/baixa_resolucao/image62.png",
//        "/books/estatisticas/baixa_resolucao/image121.png",
//        "/books/estatisticas/baixa_resolucao/image152.png",
//        "/books/estatisticas/baixa_resolucao/image35.png",
//        "/books/estatisticas/baixa_resolucao/image37.png",
//        "/books/estatisticas/baixa_resolucao/image40.png",
//        "/books/estatisticas/baixa_resolucao/image45.png",
//        "/books/estatisticas/baixa_resolucao/image76.png",
//        "/books/estatisticas/baixa_resolucao/image77.png",
//        "/books/estatisticas/baixa_resolucao/image79.png",
//        "/books/estatisticas/baixa_resolucao/image84.png",
//        "/books/estatisticas/baixa_resolucao/image98.png",
//        "/books/estatisticas/baixa_resolucao/image100.png",
//        "/books/estatisticas/baixa_resolucao/image106.png",
//        "/books/estatisticas/baixa_resolucao/image107.png",
//        "/books/estatisticas/baixa_resolucao/image123.png",
//        "/books/estatisticas/baixa_resolucao/image126.png",
//        "/books/estatisticas/baixa_resolucao/image158.png",
//        
//        "/books/mensagem/baixa_resolucao/image56.png",
//        "/books/mensagem/baixa_resolucao/image59.png",
//        "/books/mensagem/baixa_resolucao/image83.png",
//        "/books/mensagem/baixa_resolucao/image84.png",
//        "/books/mensagem/baixa_resolucao/image99.png",
//        "/books/mensagem/baixa_resolucao/image101.png",
//        "/books/mensagem/baixa_resolucao/image107.png", // rotacionada 90 graus = [25]
//        "/books/mensagem/baixa_resolucao/image109.png",
//        "/books/mensagem/baixa_resolucao/image110.png", // rotacionada 90 graus = [27]
//        "/books/mensagem/baixa_resolucao/image112.png",
//        "/books/mensagem/baixa_resolucao/image123.png",
//        
//        "/books/caracterizacao/baixa_resolucao/image81_t.png", // rotacionada 90 graus
//        "/books/caracterizacao/baixa_resolucao/image133_t.png", // rotacionada 90 graus = [31]
//        "/books/caracterizacao/baixa_resolucao/image278.png",
//                
//        "/books/estatisticas/baixa_resolucao/image1.png", // images to software quality measurement
//        "/books/caracterizacao/baixa_resolucao/image59.png",
//        "/books/caracterizacao/baixa_resolucao/image64.png",
//        "/books/caracterizaoeten2001bras/baixa_resolucao/image139.png", // rotacionada 90 graus = [36]
//        "/books/estatisticas/baixa_resolucao/image15.png",
//        "/books/caracterizacao/baixa_resolucao/image82.png",
//        "/books/estatisticas/baixa_resolucao/image4.png",
//        "/books/estatisticas/baixa_resolucao/image24.png",
//        "/books/caracterizacao/baixa_resolucao/image63.png",
//        "/books/caracterizacao/baixa_resolucao/image66.png",
//        "/books/caracterizaoeten2001bras/baixa_resolucao/image51.png", // rotacionada 90 graus = [44]
//        "/books/caracterizaoeten2001bras/baixa_resolucao/image76.png"  // rotacionada 90 graus = [45]
//};

GenericModel* model1 = new Model1();
GenericModel* model2 = new Model2();

Main2::Main2() {
}

Main2::Main2(const Main2& orig) {
}

Main2::~Main2() {
}

// set of black-box tests  --------------------------------------------------------------------------------


void caseTestUsingBookEmpty() throw (InvalidFileException) {
    TableTranscriber* tableTranscriber = new TableTranscriber("", model1, "");
    tableTranscriber->run();
}

void caseTestUsingModel1NotRotated90Degrees() {
    //TableTranscriber* tableTranscriber = new TableTranscriber(paths[0], model1, "");
    //tableTranscriber->run();
}

void caseTestUsingModel2NotRotated90Degrees() { 
    TableTranscriber* tableTranscriber = new TableTranscriber("/books/caracterizacao/baixa_resolucao/image59.png", model2, "-nr");
    tableTranscriber->run();
}

void caseTestUsingModel1Rotated90Degrees() { // "/books/anuario1916pb/baixa_resolucao/image64.png"
    TableTranscriber* tableTranscriber = new TableTranscriber("/books/estatisticas/baixa_resolucao/image49.png", model1, "-r");
    tableTranscriber->run();
}

void caseTestUsingModel2Rotated90Degrees() {
    //TableTranscriber* tableTranscriber = new TableTranscriber(paths[33], model2, "-r");
    //tableTranscriber->run();
}

// ------------------------------------------------------------------------------------------------

//int main(int argc, char** argv) {
//    try {
////        caseTestUsingBookEmpty();
////        caseTestUsingModel1NotRotated90Degrees();
////        caseTestUsingModel2NotRotated90Degrees();
////        caseTestUsingModel1Rotated90Degrees();
////        caseTestUsingModel2Rotated90Degrees();
//        TableTranscriber* tableTranscriber = new TableTranscriber("/books/estatisticas/baixa_resolucao/image62.png",model1,"-nr");
//        tableTranscriber->run();
//        
//        cout << "====> TableTranscriber executed with success." << endl;  
//    }
//    catch (NullImageException &nie) {
//        cerr << nie.what() << endl;
//    }
//    catch (InvalidFileException &ife) {
//	cerr << ife.what() << endl;
//    }
//    catch (InvalidModelException &ime) {
// 	cerr << ime.what() << endl;
//    }
//    catch (exception &ex) {        
//         cerr << "Some error ocurred. Please, report the bug to guilhermemgadelha@gmail.com" << endl;
//    }
//    
//    return 0;
//}


